<?php
/**
 * Created by PhpStorm.
 * User: Se1per
 * Date: 2023/5/25
 * Time: 21:36
 */

require_once './autoload.php';

//TODO 该项目临时创建, Controller 文件控制器 Route 路由文件 vendor(第三方类库) BaseController ApiResponse(接口返回规范)
// 由于时间比较短,所以都是简单实现基本得 框架功能 路由 数据库(单例工厂) (仿laravel)验证器 大部分功能都是只实现了基础功能,并非完整项目
$request_uri = strtok($_SERVER['REQUEST_URI'], '?');
$routes = include __DIR__ . '/Route/api.php';

// 检查是否匹配到路由
if (isset($routes[$request_uri])) {
    if (is_array($routes)) {
        // 判断是否有对应的控制器和操作方法
        if (isset($routes[$request_uri]['controller']) && isset($routes[$request_uri]['action'])) {

            // 获取控制器名称和操作方法名称
            $controllerName = $routes[$request_uri]['controller'];
            $methodName = $routes[$request_uri]['action'];

            // 引入控制器文件并实例化对象
            $controllerObj = new $controllerName;

            // 调用相应操作方法
            $result = call_user_func_array([$controllerObj, $methodName], []);

            // 处理结果（可选）
            if ($result) {
                header('Content-Type: application/json');
                echo json_encode($result);
            }
        }
    } else {
        require __DIR__ . "/" . $routes;
    }
//    require $routes[$request_uri];

} else {
    http_response_code(404);
    echo "404 Page Not Found";
}


